/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clusteranalyst2;
import java.text.DecimalFormat;
import java.util.HashMap;


/**
 *
 * @author jlh
 */
public class DataPre {
    public HashMap datasource;
    public  double [][] Sum_standard()
    {
        //总和平均化进行数据的预处理
        double[][] dataPrepared={{0}};//返回处理后的数据
        clusteranalyst2.DataSource ds=new DataSource();
        datasource= ds.getSource();
       
        //算法区 
        return dataPrepared;        
    }

    public double [][] range_standard()
    {
        //极差标准化进行数据预处理       
        DataSource ds=new DataSource();
        datasource= ds.getSource();
        MathMethods mm=new MathMethods();
        //获取需要处理的原始数组
        double [][] Dsource;//数据源数组
        //Dsource= mm.ListToMatrix(datasource);
        Dsource=mm.HmTOMatrix(datasource);

        double[][] dataPrepared=new double[Dsource.length][Dsource[0].length];//返回处理后的数据
        double[][] dataTransposed=new double[Dsource[0].length][Dsource.length];//返回转置后的数组
        //算法区域
        dataTransposed= mm.matriTranspose(Dsource);
        //设置保留小数位数的类型
        DecimalFormat df=new DecimalFormat("0.00");
       df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);
       
        double d;
        for(int i=0;i<Dsource.length;i++)
        {
            for(int j=0;j<Dsource[0].length;j++)
            {
                double min_i=mm.Minimum(dataTransposed[j]);
                double max_i=mm.Maximum(dataTransposed[j]);
                d=(Dsource[i][j]-min_i)/(max_i-min_i);
                //df.format()方法将保留两位小数
                dataPrepared[i][j]=d;
            }
        }
         //PrintMethods pm=new PrintMethods();
         //pm.printMatrix(dataPrepared);
        return dataPrepared;
    }



}
